1. Technical Field
This application relates generally to techniques for facilitating communications such as between a client and a server.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as those included in the data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations.
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units, logical devices, or logical volumes (LVs). The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
Different tasks may be performed in connection with a data storage system such as for data storage system management. A user, such as a data storage system administrator, may perform data storage system management operations and tasks to manage the data storage system. The user may perform the foregoing using a web browser located on a management computer system which is in communication with the data storage system so that the user can issue commands to the data storage system to perform tasks, view and obtain data storage system status information, and the like. The management computer system may include client management software executing in the context of the web browser which periodically polls one or more data storage systems to obtain data storage system state information. Each of the data storage systems may execute instructions to report updates to the client system management software in response to the polling request.
The foregoing technique may have existing drawbacks. The reporting by each data storage system at each interval may consume an unacceptable amount of resources of the management computer system on which the client management software is executing, the data storage system(s) being polled, and/or the network facilitating the communications therebetween. For example, the number of incoming messages to be processed by the management computer system increases with the number of data storage systems and may eventually saturate or “flood” the management computer system even though the returned polling messages indicate no change or insignificant change with regard to status. Additionally, reporting at periodic intervals means that any reported updates or events regarding data storage system status take at least until the next interval to be communicated to the management console so that reporting an important or significant event may be delayed until the next reporting interval. Thus, the management computer system may be displaying, for example, stale or outdated information or may be informed about an event within an unacceptable amount of time. Resources of the data storage systems may also be unnecessarily consumed by processing and reporting on data storage system state even though there may be no significant or noteworthy events.
Additionally, the client management software may include a web browser that communicates with a web server or other software on the data storage system using a standard communications protocol such as HTTP (Hypertext Transfer Protocol). Such protocols may have limitations, guidelines or recommendations which when implemented create a potential bottleneck in connection with processing polling requests and other requests from the client management software to perform data storage system management operations. For example, as known in the art, HTTP V1.1 has a two HTTP connection limit as a guideline adopted or imposed by some web browsers such that the web browser can only have two active logical HTTP connections to one given server in a domain at a time. In other words, at most two outstanding HTTP requests may be issued from the web browser to a web server for a particular domain name. As a result, if there are two outstanding polling requests each issued over a different HTTP connection to the web server, any subsequent data storage system management operation is not communicated to the data storage system's web server until one of the two connections closes. In typical HTTP communications, the HTTP connection is opened by the client, such as by the management computer system, when an HTTP request is communicated to a server. The HTTP connection is closed once the response has been sent from the server to the client. As such, outstanding polling requests may cause unacceptable delays in performing subsequently issued user requests for data storage system management operations that may be issued interactively or otherwise.
Thus, it may be desirable to have an efficient technique for reporting events and updates regarding one or more data storage systems in a timely manner. It may be desirable that the technique be scalable for use with a varying number of data storage systems and events occurring therein. It may also be desirable that such techniques provide for efficient use of resources.